import request from '@/utils/request/req';

// 获取个人信息
export function msgprofile(data?: any) {
  return request({
    url: '/msg/profile',
    method: 'post',
    data
  });
}
// 获取联系人列表
export function msgcontacts(data: { wxId: string }) {
  return request({
    url: '/msg/contacts',
    method: 'post',
    data
  });
}

/**
 * 分页获取联系人列表
 * @param data 请求参数
 * @param data.wxId 微信ID
 * @param data.current 页码
 * @param data.size 每页数量
 * @returns 返回分页后的联系人列表
 */
export function contactsPage(data: { wxId: string; current: number; size: number }) {
  return request({
    url: '/msg/contactsPage',
    method: 'post',
    data
  });
}

/**
 * 分页获取群组列表
 * @param data 请求参数
 * @param data.wxId 微信ID
 * @param data.current 页码
 * @param data.size 每页数量
 * @param data.groupName 群组名称
 * @returns 返回分页后的群组列表
 */
export function getGroupContactsPage(data: { wxId: string; current: number; size: number; groupName?: string }) {
  return request({
    url: '/msg/getGroupContactsPage',
    method: 'post',
    data
  });
}

// 创建群聊
export function msggroupcreate(data: any) {
  return request({
    url: '/msg/group/create',
    method: 'post',
    data: data
  });
}
// 发送消息
export function msgSend(data: any) {
  return request({
    url: '/msg/message/text',
    method: 'post',
    data: data
  });
}
// 发送会话
export function msgSendMessages(data: any) {
  return request({
    url: '/msg/sendMessages',
    method: 'post',
    data: data
  });
}
// 查询会话
export function msgSendConversations(data: any) {
  return request({
    url: '/msg/sendConversations',
    method: 'post',
    data: data
  });
}
// 获取用户信息
export function msgGetUser(data: { wxId: string; myWxId?: string; sendWxId?: string }) {
  return request({
    url: '/msg/getUser',
    method: 'post',
    data
  });
}
// 发送图片和视频消息
export function msgSendImage(data: any) {
  return request({
    url: '/msg/message/image',
    method: 'post',
    data: data
  });
}
// 发送文件消息
export function msgSendFile(data: any) {
  return request({
    url: '/msg/message/file',
    method: 'post',
    data: data
  });
}
// 更新ai消息类型
export function msgupdateAiType(data: any) {
  return request({
    url: '/msg/updateAiType',
    method: 'post',
    data: data
  });
}
// 获取ai消息辅助信息
export function msggetAiMessage(data: any) {
  return request({
    url: `/msg/getAiMessage?messageId=${data}`,
    method: 'get'
  });
}
// 获取登录二维码
export function msgGetQrcode(data: any) {
  return request({
    url: '/msg/login/refresh',
    method: 'get',
    params: data
  });
}
// 获取登录端口号
export function msgGetWxLogin() {
  return request({
    url: '/msg/getWxLogin',
    method: 'get'
  });
}
// 获取登录状态 参数：wxLogin 端口号
export function msgGetWxLoginStatus(data: any) {
  return request({
    url: '/msg/login/status',
    method: 'get',
    params: data
  });
}
// 退出微信登录
export function msgLogout(data: { wxId: string; account: string }) {
  return request({
    url: '/msg/logout',
    method: 'get',
    params: data
  });
}
// 获取微信账号列表
export function getWxListByaccount(data: { account: string }) {
  return request({
    url: '/msg/getWxListByaccount',
    method: 'get',
    params: data
  });
}
// 获取群聊列表
export function getGroupContacts(data: { wxId: string }) {
  return request({
    url: '/msg/getGroupContacts',
    method: 'post',
    data
  });
}

/**
 * 获取待添加的好友列表
 * @param wxId 微信ID
 * @returns 返回待添加的好友列表
 */
export function seleteWechatFriends(data: { wxId: string }) {
  return request({
    url: '/msg/seleteWechatFriends',
    method: 'get',
    params: data
  });
}

/**
 * 同意添加好友
 * @param id 列表id主键
 * @returns 返回操作结果
 */
export function friendAdd(data: { id: string }) {
  return request({
    url: '/msg/friend/add',
    method: 'get',
    params: data
  });
}

// 查询添加好友信息
export function seleteWechatStranger(data: { wxId: string; key: string }) {
  return request({
    url: '/msg/friend/stranger',
    method: 'get',
    params: data
  });
}

// 添加好友
export function addWechatStranger(data: {
  wxId: string;
  msg: string;
  [key: string]: any; // 包含查询接口返回的所有字段
}) {
  return request({
    url: '/msg/friend/addStranger',
    method: 'post',
    data
  });
}

/**
 * 更新微信好友列表未读状态
 * @param wxId 微信ID
 * @returns 返回更新结果
 */
export function updateWechatFriends(wxId: string) {
  return request({
    url: '/msg/updateWechatFriends',
    method: 'get',
    params: { wxId }
  });
}

/**
 * 语音转文字
 * @param id 语音消息id
 * @returns 返回转换后的文字内容
 */
export function speechToText(id: string) {
  return request({
    url: '/msg/speechToText',
    method: 'get',
    params: { id }
  });
}

/**
 * 获取客户动态列表（支持分页）
 * @param data 请求参数
 * @param data.wxId 自己微信id
 * @param data.customerWxId 查看的客户id
 * @param data.current 当前页码
 * @param data.size 每页大小
 * @returns 返回分页动态列表
 */
export function getCustomerLogList(data: { wxId: string; customerWxId: string; current?: number; size?: number }) {
  return request({
    url: '/msg/customerLog/list',
    method: 'get',
    params: data
  });
}

/**
 * 新增客户动态
 * @param data 请求参数
 * @param data.logType 日志类型（传1）
 * @param data.wxId 当前微信id
 * @param data.customerWxId 好友微信id
 * @param data.remark 备注（自己输入）
 * @returns 返回新增结果
 */
export function addCustomerLog(data: { logType: number; wxId: string; customerWxId: string; remark: string }) {
  return request({
    url: '/msg/addCustomerLog',
    method: 'post',
    data
  });
}

/**
 * 修改好友备注
 * @param data 请求参数
 * @param data.wxId 自己微信ID
 * @param data.name 好友备注名称
 * @param data.sendWxId 好友微信ID
 * @returns 返回修改结果
 */
export function updateFriendName(data: { sendWxId: string; wxId: string; name: string }) {
  return request({
    url: '/msg/find/updateName',
    method: 'get',
    params: data
  });
}

/**
 * 修改群聊名称
 * @param data 请求参数
 * @param data.wxId 微信ID
 * @param data.name 群聊名称
 * @param data.chatRoomId 群聊ID
 * @returns 返回修改结果
 */
export function updateGroupName(data: { wxId: string; name: string; chatRoomId: string }) {
  return request({
    url: '/msg/group/updateGroupName',
    method: 'get',
    params: data
  });
}

/**
 * 退出群聊
 * @param data 请求参数
 * @param data.groupId 群聊ID
 * @param data.wxId 自己微信ID
 * @returns 返回退出结果
 */
export function exitGroup(data: { groupId: string; wxId: string }) {
  return request({
    url: '/msg/group/exit',
    method: 'post',
    data
  });
}

/**
 * 邀请好友进群
 * @param data 请求参数
 * @param data.groupId 群聊ID
 * @param data.wxIdList 邀请的好友微信ID列表，多个用逗号拼接
 * @param data.wxId 自己微信ID
 * @returns 返回邀请结果
 */
export function inviteToGroup(data: { groupId: string; wxIdList: string; wxId: string }) {
  return request({
    url: '/msg/group/invite',
    method: 'post',
    data
  });
}

/**
 * 获取地区列表
 * @param areaCode 地区代码，不传则获取省级列表
 * @returns 返回地区列表
 */
export function getNbSysAreaControlList(areaCode?: string) {
  return request({
    url: '/msg/getNbSysAreaControlList',
    method: 'get',
    params: {
      areaCode
    }
  });
}
